An Automatic Translation of CSP to Handel-C
نویسندگان
چکیده
We present tools that convert a subset of CSP into Handel-C code. Handel-C was derived from the original occam concurrency language, but has a syntax similar to the standard C programming language. It compiles to produce files to program an FPGA. We thus now have a process that can directly generate hardware from a verified high-level description. The CSP to Handel-C translator makes use of the Lex and Yacc programming tools. The Handel-C code produced is functional, but not necessarily optimized for all situations. The translator has been tested using several CSP scripts of varying complexity. The functionality of the resulting Handel-C programs has been verified with simulations, and two scripts were further checked with successful implementations on an FPGA.
منابع مشابه
Experiments in Translating CSP || B to Handel-C
This paper considers the issues involved in translating specifications described in the CSP‖B formal method into Handel-C. There have previously been approaches to translating CSP descriptions to Handel-C, and the work presented in this paper is part of a programme of work to extend it to include the B component of a CSP‖B description. Handel-C is a suitable target language because of its capab...
متن کاملA Verified Protocol to Implement Multi-way Synchronisation and Interleaving in CSP
The complexity of concurrent systems can turn their development into a very complex and error-prone task. The use of formal methods like CSP considerably simplifies this task. Development, however, usually aims at reaching an executable program: a translation into a programming language is still needed and can be challenging. In previous work, we presented a tool, csp2hc, that translates a subs...
متن کاملA Step Towards Refining and Translating B Control Annotations to Handel-C
Research augmenting B machines presented at B2007 has demonstrated how fragments of control flow expressed as annotations can be added to associated machine operations, and shown to be consistent. This enables designers’ understanding about local relationships between successive operations to be captured at the point the operations are written, and used later when the controller is developed. T...
متن کاملHow Programmable is Reconfigurable Hardware? : A Design Model for Reconfigurable Architectures
With large-capacity FPGAs, such as the Xilinx Virtex family, complex systems can now be constructed from reconfigurable hardware, and sophisticated designs are more easily implemented through C-language hardware compilers, such as Handel-C [1]. However, improved language support is not enough, as effective system design needs structured methods and high-level design support, which a language by...
متن کاملSemantic domains for Handel-C
Handel-C is a programming language which is a hybrid of CSP and C, designed to target hardware implementations, specifically field-programmable gate arrays (FPGAs). The language is C-like with CSP-like parallel constructs and channel communication added. All assignments and channel communication events take one clock cycle while all expression and conditional evaluations are deemed to be instan...
متن کامل